分享人:宇宙第一超级无敌帅的邱天成
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.拓展思考
7.参考文献
8.更多讨论
angular是什么?
AngularJS[1] 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架, 已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、 依赖注入等等。
AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的伪静态文本展示设计的声明式语言, 但要构建WEB应用的话它就显得乏力了。所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事。
通常,我们是通过js来解决静态网页技术在构建动态应用上的不足;但是原生js代码量会很大;
类库 - 类库是一些函数的集合,它能帮助你写WEB应用。起主导作用的是你的代码,由你来决定何时使用类库。类库有:jQuery等
框架 - 框架是一种特殊的、已经实现了的WEB应用,你只需要对它填充具体的业务逻辑。这里框架是起主导作用的, 由它来根据具体的应用逻辑来调用你的代码。目前比较流行的有angular,vue,React,
什么是mvc框架?
MVC全名是Model View Controller;一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面, 在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
MVC与MVVM区别?
mvvm算是mvc的升级版!angular就是mvvm的代表,
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
MVVM在概念上是真正将页面与数据逻辑分离的模式,使得 Model 变化时,ViewModel 会自动更新,而 ViewModel 变化时,View 也会自动变化。
有人做过测试:使用Angular(MVVM)代替Backbone(MVC)来开发,代码可以减少一半。
此外,MVVM另一个重要特性,双向绑定。它更方便你同时维护页面上都依赖于某个字段的N个区域,而不用手动更新它们。
angular的亮点和过人之处!
AngularJS模块划分明确,不同的代码有其明确的存放处,可读性强,便于维护和扩展(后面会有代码组织结构图)。
AngularJS的代码方便测试。虽然代码易测试不能成为一个框架闪光的决定性因素,但是反向思考,如果写出来的代码可测试性差将会使工作效率事倍功半。
双向绑定的出现,无可争议的大大简化了你的代码量,与其说是技术的革新,不如说是一场思想上的颠覆与突破。回想jQuery还需要通过在DOM中找到需要的元素并在其上添加事件监听,通过触发事件(如点击等)才能解析获取DOM元素中的值。而在AngularJS中只需要将DOM中的元素与js的某个属性绑定,js属性值变化会同步到DOM元素上,同样的,DOM元素值得变化也会映射到js的属性上。夸张点说,一个是刀耕火种,一个是蒸汽驱动。
AngularJS专业术语概览
名称 | 作用 |
Module | AngularJS中一切都是从Module模块开始的,模块是组织代码的容器,当然模块中还可以包含子模块 |
Routes | 路由负责在应用中基于state进行页面的跳转 |
Views | Views是通过AngularJS编译后呈现的DOM |
$scope | $scope 实际上就是一个JavaScript对象,controller和view都可以访问它,所以我们可以利用它在两者间传递信息。在这个 $scope 对象里,我们既存储数据,又存储将要运行在view上的函数。$scope是连接controller和view之间的桥梁, |
Controller | 定义一些属性和方法用于绑定到view的元素上,一般来说,controller是比较轻量的,它里面只放一些负责view呈现的属性和方法 |
Directive | 指令使得AngularJS能够创建自定义的标签并实现相应的功能,可以将指令看成一种特殊的html标签 |
Service | Service负责提供一些通用的功能函数,比如有些数据在多个controller中都会用到,就可以定义在一个service中 |
菜鸟教程
http://www.tuicool.com/articles/aiMvQb3
angular和jQuery哪好用一些?
感谢大家观看
BY : 李仁|邱天成